package espacokidsadm.modelo.dao.impl;

import java.util.List;

import javax.persistence.EntityTransaction;
import javax.persistence.NoResultException;

import espacokidsadm.modelo.dao.Dao;
import espacokidsadm.modelo.entity.Pessoa;


public class PessoaDAO extends Dao {

	private static final long serialVersionUID = -8652566999470645721L;
	
	public Pessoa salvar(Pessoa pessoa) {
		
		EntityTransaction transaction = getEm().getTransaction();
		transaction.begin();
		
		if(pessoa.getId() == null)
			getEm().persist(pessoa);
		else
			getEm().merge(pessoa);
		
		transaction.commit();
		
		return getById(pessoa.getId());
	}

	public Pessoa getPessoaByCpf(String cpf) throws NoResultException{
		return getPojo(Pessoa.class, "Select pessoa From Pessoa pessoa where pessoa.cpf = ?1", cpf);
	}
	
	public Pessoa getById(Integer id) {
		return getPojo(Pessoa.class, id);
	}

	public List<Pessoa> getTodos() {
		return getList(Pessoa.class, "select pessoa from Pessoa pessoa order by pessoa.nomePessoa");
	}

}
